package cn.com.nes.site.service.system.callCenter;

import cn.com.nes.site.entity.bo.user.GetInstallPersonListBO;
import cn.com.nes.site.entity.bo.user.PushCallCenterUserInfoBO;
import cn.com.nes.site.entity.bo.workorder.GetWorkOrderInstallDetailBO;
import cn.com.nes.site.entity.bo.workorder.GetWorkOrderInstallPageBO;
import cn.com.nes.site.entity.bo.workorder.SaveWorkOrderBO;
import cn.com.nes.site.entity.vo.comecall.ComecallVo;
import cn.com.nes.site.service.system.callCenter.bo.CallCenterApplyBO;
import cn.com.nes.site.service.system.callCenter.bo.CallCenterApplyCheckBO;
import cn.com.nes.site.service.system.callCenter.dto.CompanyApplyPageDto;
import cn.com.nes.site.service.workOrder.dto.WorkOrderInstallDetailDTO;
import cn.com.nes.site.service.workOrder.dto.callCenter.WorkOrderInstallPageDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
 * 长效管护 - 客服中心 服务
 *
 * @Author: ShenWei
 * @Date: 2024/04/22/13:21
 */
public interface CallCenterService {

    /**
     * 推送用户账号
     */
    String pushCallCenterUser(PushCallCenterUserInfoBO callCenterUserInfoBo) throws Exception;

    /**
     * 更新用户账号
     */
    void updateCallCenterUser(PushCallCenterUserInfoBO callCenterUserInfoBo) throws Exception;

    /**
     * 删除用户账号
     */
    void deleteCallCenterUser(Long oldCallCenterUserId, Long callCenterCompanyId) throws Exception;

    /**
     * 查询安装人员列表
     * @param getInstallPersonListBo
     * @return
     */
    Object getInstallPersonList(GetInstallPersonListBO getInstallPersonListBo) throws Exception;

    /**
     * 创建工单
     * @param saveWorkOrderBo
     * @throws Exception
     */
    Long createWorkOrder(SaveWorkOrderBO saveWorkOrderBo,String url) throws Exception;

    /**
     * 查询安装工单分页
     * @param getWorkOrderInstallPageBo
     * @return
     */
    WorkOrderInstallPageDTO getWorkOrderInstallPage(GetWorkOrderInstallPageBO getWorkOrderInstallPageBo) throws Exception;

    /**
     * 查询安装工单详情
     * @param getWorkOrderInstallDetailBo
     * @return
     */
    WorkOrderInstallDetailDTO getWorkOrderInstallDetail(GetWorkOrderInstallDetailBO getWorkOrderInstallDetailBo) throws Exception;


    /**
     * 查询客服中心申请分页列表
     * @param callCenterApplyBO
     * @return
     * @throws Exception
     */
    Page<CompanyApplyPageDto> getCallCenterApplyPage(CallCenterApplyBO callCenterApplyBO) throws Exception;
    /**
     * 客服中心申请审核
     * @param callCenterApplyCheckBO
     * @throws Exception
     */
    void callCenterApplyCheck(CallCenterApplyCheckBO callCenterApplyCheckBO) throws Exception;


     Object forward(String str,ComecallVo vo) throws Exception;

}
